\subsection{AWACS}
\subsubsection{Présentation}

AWACS est le nom de la plate-forme d’administration d’équipements Arduino sur tablette Android que nous avons programmé. Son nom signifie \textbf{A}ndroid \textbf{W}ireless \textbf{A}dministration and \textbf{C}ontrol \textbf{S}ervice, et elle permet de communiquer avec les modules Arduino que nous avons construit tout au long de ce projet. \\

\begin{figure}[!h]
\centering
\includegraphics[scale=0.38]{AWACS_avion.jpg}
\caption{Un AWACS est à l'origine un avion de guerre électronique\cite{USAF}}\label{fig:somefiglabelx}
\end{figure}

A l'origine, cette plate-forme avait un but expérimental, et il était par exemple proposé de pouvoir implémenter une fonctionnalité "domotique" au sein du LaBRI, la tablette ayant alors pour but de communiquer avec des modules Arduino préalablement disposés dans le bâtiment. Par exemple, on aurait pu l'utiliser pour localiser les modules, les configurer à distance, et récupérer les informations qu'ils produisaient. La tablette Android ayant des capacités Wi-Fi et GSM, elle devait être capable d'interagir avec les modules par ces deux modes de communication. \\

\begin{figure}[!h]
\centering
\includegraphics[scale=0.30]{AWACS_menu.jpg}
\caption{Le menu d'AWACS}\label{fig:somefiglabelx}
\end{figure}

\subsubsection{Fonctionnalités}

Actuellement, AWACS est capable d'envoyer et de recevoir des messages aussi bien par Wi-Fi que par SMS, puis de traiter ceux-ci afin de savoir s'ils correspondent au protocole d'échange que nous avons créés. Ce protocole est basé sur un système de tags, qui sont ensuite utilisés pour formater les messages échangés d'une manière particulière. \\

\begin{figure}[!h]
\centering
\includegraphics[scale=0.30]{AWACS_GPS.jpg}
\caption{AWACS qui communique avec un module GPS Arduino}\label{fig:somefiglabelx}
\end{figure}

Ainsi, comme cela a déjà été décrit plus haut dans la section \textbf{Protocole de communication}, si AWACS reçoit un message contenant (exactement) la ligne "GPS 44 24.8191N 000 43.2812E Villeneuve-sur-Lot ArduinoUno", il comprendra aux trois premières lettres (le tag) qu'il va devoir envoyer les données à son module GPS. Les coordonnées qui suivent sont ensuite lues et transformées pour être acceptées par l'API Google Map accessible sur Android, tandis que les deux derniers mots sont des champs d'informations optionnels. Il est à noter que ce format d'écriture pour les coordonnées GPS est celui fourni par le \textit{shield} GPS de nos modules Arduino. \\

\begin{figure}[!h]
\centering
\includegraphics[scale=0.30]{AWACS_wifi.jpg}
\caption{Le module Wi-Fi}\label{fig:somefiglabelx}
\end{figure}

Le module Wi-Fi d'AWACS permet de scanner la présence de modules Arduino dans la zone, de voir les \textit{shields} dont ils sont équipés, et de leur demander des informations pertinentes. Par exemple, si un module Arduino équipé d'un module GPS et d'un module Thermomètre est détecté, on pourra lui demander sa géolocalisation ainsi que la température auquel il est exposé. AWACS dispose aussi d'un module pour envoyer des SMS, simple d'emploi. \\

Dans l'état actuel des choses, le seul retard d'AWACS par rapport à son cahier des charges est qu'il n'administre pas vraiment les modules Arduino, c'est à dire qu'il ne peut pas leur envoyer de messages pour les configurer à distance. Cependant, l'implémentation d'une telle administration aurait tout à fait été possible avec plus de temps pour le développement, et on aurait par exemple pu envisager de pouvoir re-configurer à distance le code PIN du \textit{shield} GSM ou bien l'adressage IP du \textit{shield} Wi-Fi. \\

L'architecture d'AWACS étant basée sur l'envoi et la réception de messages, il suffirait d'enrichir le protocole déjà mis en place avec de nouveaux tags pour pouvoir accepter de nouveaux modules, le système étant à chaque fois similaire (réception, envoi au bon module pour traitement, parsing du message pour extraire les informations). Les possibilités sont multiples, mais il est à noter que le matériel employé dispose de nombreuses limitations réduisant parfois ce que l'on peut en faire.

\subsubsection{Problèmes rencontrés}
Le développement d'AWACS a été ponctué de petits problèmes qui sont maintenant réglés. Ils ont tout de même fait perdre un temps certain, temps qui nous aurait permis de développer plus de fonctionnalités au programme.\\

Le problème majeur quant au développement d'AWACS a été le manque de matériel correct sur lequel travailler. En effet, en plus des problèmes de réseaux Wi-Fi mentionnés plus hauts, nous n'avions pas les droits nécessaires pour installer certains programmes sur nos comptes pourtant nécessaires au développement Arduino et Android, nous forçant à compter sur des solutions non-standardisées telles que nos ordinateurs personnels. Il faut toutefois noter que les administrateurs du CREMI nous ont aidés de leur mieux, et ainsi, par exemple, les ordinateurs du bâtiment reconnaissent maintenant de manière native les tablettes Android, ce qui n'était pas le cas avant le début de notre projet.
